The present invention relates to methods and apparatus for requesting and receiving print jobs over a communications network. In particular, the present invention enables a user to obtain print jobs at a location which may be unspecified, and which may be remote from the source of the print job. A spooling server is used to store a print job received via the network from a print job source. A printer polling device, which may be used at a location remote from the client device, is capable of polling the spooling server via the network to identify whether any print jobs associated with the printer polling device are available for printing at one or more printers associated with the polling device.
As computer networks become more complex, the rate at which network configurations change continues to increase. Also, the increasingly frantic pace of the typical business traveler who juggles documents on multiple computers and is required to configure a traveling laptop computer to integrate into various changing networks makes it increasingly difficult to reliably and efficiently print even a simple document.
For example, a business traveler in a hotel may wish to print to a printer that the hotel provides for such purposes. Under the current state of the art, the user must first obtain the network ID of the printer along with some information about the type of printer. Then, a print driver for that specific printer must be installed on the user""s computer, and the computer must be configured to connect to the printer. This may additionally involve configuring the computer to connect to the host network.
Further, in many cases, it is desirable to be able to prepare a document for printing prior to having the information concerning the destination printer. For example, it may be desirable to print a document from a mobile laptop connected via a wireless data connection while in transit to a meeting at a site the user has never visited before. Obtaining the information and configuring the laptop to be able to print to the printer becomes logistically infeasible.
These problems have typically been solved in the past by one of the following methods:
1. The document is e-mailed or otherwise transferred over a network to a computer already configured to print to the desired printer;
2. A portable computer is connected directly to the printer via a cable or infra-red, bypassing many of the difficulties of configuring the computer to print to a network computer;
3. A portable printer is transported to the desired location; or
4. The document is faxed to a fax machine.
Printing methods relating to network and distributed printing are known in the prior art. Such systems require either a private network or foreknowledge of the destination of a print job. These prior art methods comprise what is typically referred to as xe2x80x9cpushxe2x80x9d technology (i.e. technology in which a print job is directed to a specific known destination or printer).
In addition to the need for efficiency and ease of use is the need for security when sending, storing, or printing print jobs. Early in the life of the Internet, the need for securing an organization""s local network from tampering, stealing, or vandalism by outsiders became very obvious. A type of gateway called a firewall was developed to meet this need. The firewall is designed to be a single, well-controlled access point between the outside, global, or wide-area network and the inside, local-area network. By carefully restricting the types of network traffic and the destinations where that traffic can flow, the firewall can provide effective protection.
Specific xe2x80x9cholesxe2x80x9d in the firewall are created for each type of traffic that is allowed through the gateway in each direction. Most organizations, for example, allow e-mail traffic in and out from their e-mail server, as well as web page client access from inside the firewall to servers located outside of it.
Many types of access between machines commonly used on a local network are normally prevented from going through the firewall. Specifically, file sharing, remote log-in, printing, and various other network-administration types of protocols are typically not allowed to be transported outside the firewall.
Another aspect of the firewall is that it is almost always administratively controlled by a centralized authority for the organization that owns the local area networkxe2x80x94commonly the management information services (MIS) department of a company. Normal users generally have to make special requests that are approved at the upper levels of management to get configuration changes in the firewall. In the interest of maintaining security, these changes are often limited to specific point-to-point exceptions or xe2x80x9cholesxe2x80x9d in the firewall.
It is desirable by many users to be able to print from a machine on one local area network to a printer located on a different local area network with the data being transferred over a global network (e.g., the Internet) outside of the firewall of both local networks. The current state of the art does have solutions for this problem. However, almost all of these solutions require the intervention of the firewall administrator. One example of a solution is the IPPxe2x80x94Internet Printing Protocol standard being promulgated by various vendors. This standard allows IPP-equipped printers to receive print jobs from remote clients over the Internet. However, the installation and use of IPP requires that a specific IPP hole be opened in the firewall by the network administrator.
It would be advantageous to be able to provide methods and apparatus that allow a user to print to a perhaps yet unknown destination printer or printer pool in a reliable, efficient and secure manner without the disadvantages of the above-mentioned techniques.
It would be further advantageous to provide a printing system based on xe2x80x9cpullxe2x80x9d technology (i.e. technology which enables a print job to be printed upon request, where the print file is only delivered in response to said request). Such technology would enable a system that allows a user to print to a destination printer or printer pool that may be located anywhere, in a reliable, efficient, and secure manner without the disadvantages of the above-mentioned techniques.
It would be further advantageous to have a solution that allows secure, efficient and easy-to-configure inter-network printing through a gateway firewall without the intervention of the network administrator.
The methods and apparatus of the present invention provide the foregoing and other advantages.
The present invention relates to methods and apparatus for requesting and receiving print jobs over a communications network. In particular, the present invention enables a user to obtain print jobs at a location which may be unspecified, and which may be remote from the source of the print job. A spooling server is used to store a print job received via the network from a print job source. A printer polling device, which may be used at a location remote from the source of the print job, is capable of polling the spooling server via the network to identify whether any print jobs associated with the printer polling device are available for printing at one or more printers associated with the polling device.
In an illustrative embodiment, a printer polling device is provided which is capable of requesting and receiving print jobs over a network. The printer polling device is capable of polling a spooling server over a network to identify a print job stored at the spooling server (e.g., via a transmitter). The identified print job is transmitted from the spooling server and received at the printer polling device (e.g., at a receiver).
The spooling server receives and stores said print job from a print job source via the network. The print job can originate from any suitable print job source, such as a client device with an associated print driver, a web browser, a facsimile machine, a scanner, a telephone, an Internet appliance, a personal digital assistant, or the like. A print job can also originate on the spooling server itself or be obtained from another server. The client device may be a computer, a telephone, a personal digital assistant, an Internet appliance, or the like.
The identified print job can be received at the printer polling device and printed at one or more printers coupled to the printer polling device. The printer polling device may periodically poll the spooling server to identify a print job associated with the printer polling device.
The network may comprise at least one of a local area network, a wide area network, a global network, the Internet, and any other type of network. The network may consist of multiple interconnected networks having multiple gateways and other features as is well known in the art.
In an alternate embodiment, the printer polling device may be located within a gateway firewall and the spooling server may be located outside the gateway firewall. The print job may be forwarded from the spooling server to the printer polling device such that reconfiguration of the gateway firewall is not required. For example, the print job may be forwarded to the spooling server as web-style traffic and received at the printer polling device as web-style traffic.
The print job source may be located at and in communication with a first local area network and the printer polling device may be located at and in communication with a second local area network. The spooling server may be located outside of the first and second local area networks. The print job source may communicate with the spooling server via a first gateway firewall which controls access to the first local area network and the printer polling device may communicate with the spooling server via a second gateway firewall which controls access to the second local area network.
The printer polling device may be: (i) a stand-alone device connected to one or more printers via a standard printer port, (ii) integrated into the firmware of a printer, (iii) integrated into the software of a network print server, or (iv) of any other suitable configuration.
The print job may be encrypted at the print job source and decrypted at the printer polling device.
The print job may comprise a document provided by a content provider. The content provider may be one of a newspaper, a magazine, a periodical, a document provider, a graphic arts provider, a notification service, an Internet content provider, a merchant, a financial institution, a government agency, a shipping company, or the like.
The print job may be provided by the content provider on a subscription basis. A single print job may be provided by the content provider for printing by multiple users.
The printer polling device may comprise a user interface, a connection to the network, and a connection to one or more printers.
In a further embodiment, each print job may be stored on the spooling server according to a personal identification number (PIN). The spooling server may communicate to the printer polling device a list of print jobs associated with the PIN which are stored at the spooling server. The selection of a print job from the list may be provided for (e.g., via a user interface).
A plurality of print jobs may be stored on the spooling server according to the PIN. The PIN may be provided to the spooling server via one of a user interface associated with the printer polling device, a telephone, a computer, an Internet appliance, a facsimile machine, a scanner, a personal digital assistant device, a dedicated terminal, or the like. The list of available print jobs may be displayed on one of a user interface associated with the printer polling device, a telephone, a computer, an Internet appliance, a facsimile machine, a scanner, a personal digital assistant device, a dedicated terminal, or the like. Selection of an available print job may be made via a user interface associated with the printer polling device, a telephone, a computer, an Internet appliance, a facsimile machine, a scanner, a,personal digital assistant device, a dedicated terminal, or the like.
The printer polling device may be a portable device. The printer polling device may be operably associated with a variety of printer types.
In a further embodiment, the print job may be provided to the spooling server without a pre-determined print destination. Alternatively, a desired print location for the print job may be designated at the print job source. The designated print location may be communicated to the spooling server with the print job. The print job may be printed at the desired print location when the printer polling device at the desired print location polls the spooling server and identifies the print job.
Further, a substantially specific time for printing a print job may be designated such that the print job is only available for printing from the spooling server at the designated substantially specific time.
In addition, a lifetime of the print job may be designated, wherein said print job will be stored on the spooling server only for the designated lifetime.
A number of printings of the print job may be designated, wherein the print job can only be printed the designated number of times.
A list of recipients authorized to retrieve a print job may be designated, wherein the print job may only be printed by the designated recipients.
The print job may be one of a negotiable instrument, a stamp, a coupon, a certificate, a check, a unit of currency, a token, a receipt, or the like.
The printer polling device may be connected to the network using DHCP protocol, or any other suitable network configuration protocol.
In a preferred embodiment, the printer polling device is capable of communicating printer status to the spooling server. The printer status may comprise at least one of a printer ready indication, an on-line indication, toner level information, paper supply information, error information, or other appropriate status information.
A printer operator can be notified when the printer status indicates that a printer requires attention. The operator can also be provided with vendor contact information to facilitate obtaining printer supplies or service. Automatic on-line ordering of printer supplies as required by printer status can be provided (e.g., by the spooling sever contacting predetermined preferred vendors).
The print job may include at least one of a document, a poster, an image, a coupon, a ticket, a certificate, a check, a list, a schedule, a periodical, a unit of currency, a negotiable instrument, postage, a bill of lading, a lottery or gaming ticket, a token, food stamps, a license, a permit, a pass, a passport, a ballot, a citation, identification, a copy-protection key, a proof-of-purchase, a warranty, a receipt, a transcript, a library card, or any other printable subject matter.
In an alternate embodiment, an agent program provides a directory of documents to the spooling server. The agent program enables a client device associated with the print job source to poll the spooling server to determine whether the spooling server requires a document identified in the directory to complete a print job. If so, the can be uploaded from the client device to the spooling server.
The directory can be communicated to the printer polling device and presented at the printer polling device. Selection of a print job from the directory can be made (e.g., via a user interface).
The directory may be presented via a visual presentation or an audio presentation. The client device may periodically poll the spooling server to determine whether the spooling server requires a document identified in the directory to complete a print job.
A communication device for providing status of the print job stored on the spooling server may be provided. The status of the print job may comprise at least one of filename, file size, author, creation date, print job lifetime, image, title, contents, personal identification number, recipient, job number, or reference number. The communication device may be a telephone, a computer, an Internet appliance, a personal digital assistant device, a dedicated terminal, or any other suitable wireless or wired communication device.
The printer polling device may be capable of polling multiple spooling servers.
The spooling server may be capable of communicating with other servers and receiving a print job from at least one of the other servers.